g_value_init (value, node->pspec->value_type);
if (val)
- {
- _gtk_style_property_resolve (node, props, state, context, val);
- g_value_copy (val, value);
- }
+ _gtk_style_property_resolve (node, props, state, context, val, value);
else if (_gtk_style_property_is_shorthand (node))
_gtk_style_property_pack (node, props, state, context, value);
else
GtkStyleProperties *props,
GtkStateFlags state,
GtkStylePropertyContext *context,
- GValue *val)
+ GValue *val,
+ GValue *val_out)
{
if (G_VALUE_TYPE (val) == GTK_TYPE_SYMBOLIC_COLOR)
{
if (property->pspec->value_type == GDK_TYPE_RGBA)
{
if (resolve_color (props, val))
- return;
+ goto out;
}
else if (property->pspec->value_type == GDK_TYPE_COLOR)
{
if (resolve_color_rgb (props, val))
- return;
+ goto out;
}
g_value_unset (val);
if (!resolve_shadow (props, val))
_gtk_style_property_default_value (property, props, state, val);
}
+
+ out:
+ g_value_copy (val, val_out);
}
gboolean
GtkStyleProperties *properties,
GtkStateFlags state,
GtkStylePropertyContext *context,
- GValue *orig_value);
+ GValue *orig_value,
+ GValue *out_value);
gboolean _gtk_style_property_is_shorthand (const GtkStyleProperty *property);
GParameter * _gtk_style_property_unpack (const GtkStyleProperty *property,